"""
推导式（Comprehensions）是Python提供的一种简洁的语法，用于创建列表、字典、集合等数据结构。
它可以通过一行代码生成一个新的列表、字典或集合，大大简化了代码的编写，提高了可读性和效率。
推导式包括列表推导式、字典推导式、集合推导式等等。
推导式可以简单理解为for循环语句(+if条件语句)的简写版本，其基础语法结构为
待转换的数据类型(表达式 for 变量 in 可迭代对象)
待转换的数据类型(表达式 for 变量 in 可迭代对象 if 条件)
"""

"""
#列表推导式用于创建列表。其基础语法为
[表达式 for 变量 in 可迭代对象]
list(表达式 for 变量 in 可迭代对象)
[表达式 for 变量 in 可迭代对象 if 条件]
list(表达式 for 变量 in 可迭代对象 if 条件)
"""
squares = [x**2 for x in range(1, 11)]
print(squares)        # 输出: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
even_squares = list(x**2 for x in range(1, 11) if x % 2 == 0)
print(even_squares)   # 输出: [4, 16, 36, 64, 100]
mat = [[0, 0] for i in range(3)]
print(mat)            # 输出：[[0, 0], [0, 0], [0, 0]]
"""
字典推导式用于创建字典。其基础语法为
{键的表达式: 值的表达式 for 变量 in 可迭代对象}
{键的表达式: 值的表达式 for 变量 in 可迭代对象 if 条件}
"""
squares_dict = {x: x**2 for x in range(1, 6)}
print(squares_dict)  # 输出: {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
words = ['go', 'cat', 'dog', 'elephant']
length_dict = {word: len(word) for word in words if len(word) >= 3}
print(length_dict)  # 输出: {'cat': 3, 'dog': 3, 'elephant': 8}
"""
集合推导式用于创建集合。其基础语法为
{表达式 for 变量 in 可迭代对象}
set({表达式 for 变量 in 可迭代对象})
{表达式 for 变量 in 可迭代对象 if 条件}
set(表达式 for 变量 in 可迭代对象 if 条件)
"""
squares_set = {x**2 for x in range(1, 11)}
print(squares_set)  # 输出: {64, 1, 4, 36, 9, 16, 81, 49, 25, 100}
even_squares_set = set(x**2 for x in range(1, 11) if x % 2 == 0)
print(even_squares_set)  # 输出: {64, 100, 4, 36, 16}